import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import * as path from 'path';
import DefineOptions from 'unplugin-vue-define-options/vite';
import Icons from 'unplugin-icons/vite';
//引入 Icon自动引入解析器
import IconsResolver from 'unplugin-icons/resolver';
// 引入自动引入插件
import UnpluginVueComponents from 'unplugin-vue-components/vite';
import { FileSystemIconLoader } from 'unplugin-icons/loaders';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    DefineOptions(),
    // 使用自动引入插件
    UnpluginVueComponents({
      dts: true,
      dirs: ['src/components'], // 按需加载的文件夹
      // 配置解析器
      resolvers: [
        // Icon自动引入解析器
        IconsResolver({
          //customCollections: ['custom'],
          // 自动引入的Icon组件统一前缀，默认为 i，设置false为不需要前缀
          //prefix: 'icon',
        }),
      ],
    }),
    Icons({
      compiler: 'vue3',
      autoInstall: true,
      // customCollections: {
      //   // 这里是存放svg图标的文件地址，custom是自定义图标库的名称
      //   custom: FileSystemIconLoader('./src/icons'),
      // },
    }),
  ],
  //配置路径别名
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src'),
    },
    extensions: ['.js', '.json', '.ts'], // 使用路径别名时想要省略的后缀名，可以自己 增减
  },
  server: {
    cors: true, // 默认启用并允许任何源
    host: 'localhost',
    port: 8848,
    open: true,
    hmr: {
      overlay: true,
    },
    proxy: {
      '/api': {
        target: 'https://localhost:9000/',
        changeOrigin: true,
        rewrite: path => path.replace(/^\/api/, ''), // 重定向地址
      },
    },
  },
});
